This invention relates generally to the design of scanning systems for reading bar code symbols or similar indicia, and more particularly, to scanning both one-dimensional and two-dimensional bar codes symbols automatically. Most conventional optical scanning systems can read either one-dimensional or two-dimensional bar code symbols. A bar code symbol is a coded pattern of indicia having a series of variable-width bars separated by variable-width spaces, the bars and spaces having different light-reflecting characteristics. One example of a one-dimensional bar code is the UPC/EAN code currently in use for identifying articles and other information. One example of a two-dimensional, or stacked, bar code is the PDF417 bar code described in U.S. Pat. No. 5,159,639, which is incorporated herein by reference.
Most scanning systems, or scanners, generate a beam of light which reflects off a bar code symbol so the scanning system can receive the reflected light. The system then transforms that; reflected light into electrical signals, and decodes those electrical signals to extract the information embedded in the bar code symbol. Scanning systems of this general type are described in U.S. Pat. Nos. 4,251,798; 4,360,798; 4,369,361; 4,387,297; 4,409,470; and 4,460,120, all of which have been assigned to Symbol Technologies, Inc.
Because both one-dimensional symbols and two-dimensional symbols are currently being used, it would be simpler and more efficient if a single scanning system could not only distinguish a bar code symbol from other markings, such as text, but also decode the symbol whether it is one-dimensional or two-dimensional. This operation is particularly important when the bar code symbol is skewed relative to the scanning patterns of the scanner.
An additional problem for such scanning systems occurs when decoding two-dimensional bar code symbols. These symbols do not all have the same height, so the scanning system must expand its scanning pattern to cover the entire two-dimensional symbol. Some conventional systems do this, but sometimes cover areas outside of the symbol. Although, using such a large pattern does not affect the accuracy of the scanner, it is inefficient. The portions of the scanning pattern which lay outside the bar code symbol are useless, and scanning these areas slows down the scanning operation. In addition, forcing the scanning pattern to be too large reduces the accuracy of decoding the two-dimensional bar code symbol.
Building a system, to overcome these problems is not only difficult, it is complicated by an additional concern. Scanners should not become any larger for ergonometric and, economic reasons. Thus, more powerful and flexible scanning devices must be compact.
Another concern is speed. The additional processing needed for increased, efficiency and flexibility must not come at the expense of speed. That processing must therefore proceed quickly and efficiently.
Yet another concern is the need to ensure that the different scanner subsystems communicate with each other effectively as they become more robust. Scanning systems typically have different subsystems, such as the scanning engine, the optical sensor, and the decoder. The interfaces between these different subsystems must support the required processing power and allow one to improve one part a scanning system without redesigning other systems.
To obtain a scanner with all these features is very difficult indeed. The fast-increasing use of bar codes, however, demands that scanning systems have increasing flexibility, robustness, and efficiency.
It is therefore an object of this invention to provide a scanner capable of differentiating between one-dimensional, and two-dimensional bar codes, and of decoding them automatically and appropriately even if they are not initially aligned with the scanner.
It is also an object of the invention to ensure that the scanning pattern can precess to change the location of the scan lines.
It is another object of the invention to adjust the height of the scanning patterns automatically to ensure that the scanning pattern covers the entire symbol without extending outside the symbol.
A further object of the invention is to provide a fast but compact scanning engine to generate scanning patterns for both one-dimensional and two-dimensional bar codes.
It is also an object of the invention to have such a scanning engine adapt itself to the different characteristics of the scanning elements.
It is a further object of the present invention to have such a powerful and flexible scanning engine communicate with the remainder of the scanner over a robust and flexible interface.